#include<iostream>
class ULtraBase
{
    public:
    ULtraBase (int c):c(c){}

    protected:
        int c;
};
class Base1:virtual public ULtraBase
{
    public:
    Base1(int c,int a):ULtraBase(c),a(a){}
    void show()
    {
        std::cout << "a:" << a;
    }

    protected:
        int a;
};
class Base2:virtual public ULtraBase
{
    public:
    Base2(int c,int b):ULtraBase(c),b(b){}
    void show()
    {
        std::cout << "b:" << b;
    }
    protected:
        int b;
};
class Derived:public Base1,public Base2
{
public:
Derived(int c,int a,int b):ULtraBase(c),Base1(c,a),Base2(c,b){}
void show()
{
    Base1::show();
    Base2::show();
    std::cout << "c:" << c << std::endl;
}
};
int main()
{

    return 0;
}